System and method for projecting transformations of object trees

ABSTRACT

A system and method for projecting the transformation of object trees, especially in MES systems, wherein the course object tree and target object tree are represented in a common meta-object model of a software system, especially a framework. The source object tree is transformed into the target object tree by adjustment. Transformation occurs directly in the object of the meta-object model, thereby enabling communication between connected applications by means of pure data exchange.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is the U.S. National Stage of International ApplicationNo. PCT/DE02/04375, filed Nov. 28, 2002 and claims the benefit thereof.The International Application claims the benefits of German applicationNo. 10161111.0 filed Dec. 12, 2001, both of the applications areincorporated by reference herein in their entirety.

FIELD OF INVENTION

The invention relates to a system and a method for projectingtransformations of object trees, wherein the source and target objecttrees are represented in a common meta-object model of a software systemand wherein the software system is stored on at least one computer unit.

The invention further relates to a corresponding computer program, acomputer program product and a data processing device.

BACKGROUND OF INVENTION

When heterogeneous applications, e.g. MES applications, areinterconnected in a software system, the objects and/or object trees ofthe respective applications are mostly represented in different ways inthe meta model of the software system, even if the objects and/or objecttrees are semantically consistent. These differences in representationmake communication between the applications more difficult.

“Software für die Automatisierung—Transparenz über die Abläufe schaffen”(“Software for automation—creating transparency across processes”), anarticle by Dirk Kozian in “Elektronik für die Automatisierung 11”, Nov.17, 1999, discloses the use of what are termed “Manufacturing ExecutionSystems” (MES) for automating production and manufacturing processes.These systems integrate the automation level (Controls) with the ERPsystems (ERP: Enterprise Resource Planning) of the corporate executivemanagement level. Manufacturing Execution systems are systems whichprovide, for example, information for optimizing production processes.On the one hand, the Manufacturing Execution systems must supplement therough planning data of the ERP systems with equipment-specific andup-to-date fine planning data and forward this data accordingly to theunderlying automation level; on the other hand, they are required toextract production-relevant information from the automation level andreport it further to the corporate executive management level. MESsystems therefore fulfill the role of providing a vertical integrationbetween the corporate executive management level and the automationlevel. Typical individual tasks of MES systems are enterprise assetmanagement, maintenance management, information management, scheduling,dispatching, and trace & track. These tasks are executed in each case bythe respective MES components or MES applications.

Due to the technical software- and data-related heterogeneity of the MESapplications, however, they can be integrated into a common system orproject only with very great difficulty and the data exchange betweenthese applications can be implemented only with extra investment of timeand effort.

“Massive Wiederverwendung: Konzepte, Techniken und Organisation”(“Massive reuse: concepts, techniques and organization”), an article byUlrich Lindner in OBJEKTspektrum 1/96, pp. 10-17, discloses how softwarecomponents may be integrated into a software system by means of what aretermed adapters or by wrapping. The aim here is to increase thereusability of software components.

“XML—Schlüsseltechnologie für Softwarearchitekturen” (“XML—keytechnology for software architectures”), an article by Alexander Jung inOBJEKTspektrum 1/2001, pp. 71-74, discloses how XML (extensible MarkupLanguage) may be used for data exchange between dissimilar systems andat the same time for performing transformations. A standard procedurefor transforming XML documents is defined in the context of the XMLfamily: XSL transformations (XSL stands for Extensible StylesheetLanguage). By means of XSL transformations it is also possible todescribe tree transformations, but only if the objects of the trees arepresent in XML format and the respective XML format is known to a user.If a user wants to perform a transformation of an object tree, he or sherequires the associated representation of the objects in XML format andmust define the transformation at the XML level.

This requires time and effort, for the user must first obtain thecorresponding XML formats of the objects.

“Konfigurieren statt Programmieren—Die Empfehlungen of theZVEI-Arbeitskreises Systemaspekte, 1. Teil” (“Configuring instead ofprogramming—the recommendations of the ZVEI System Aspects WorkingGroup”, Part 1), an article in Elektronik 8/1994, pp. 112-117, describeshow the software automation systems may be configured or “projected”. Noconfigurable systems for cross-sector problems are present, however.

SUMMARY OF INVENTION

The object of the underlying invention is to provide a system and amethod for projecting transformations of object trees, wherein it isconvenient and easy for the user to define the transformations.

According to the invention the proposed object for a system forprojecting transformations of object trees is achieved by the featuresrecited in claim 1. The transformation of the objects or object treestakes place here in the domain environment of the user; in other words,the user can abstract from the underlying format of the objects. Afurther advantage is that as a result of the transformation objectstructures are converted into a form which is intelligible in each caseto recipients (e.g. other applications) of these object structures. Thatis to say, the situation often occurs that in a common meta-object modelsemantically identical objects (e.g. a production order) are representeddifferently. As a result of the transformations, uniform representationsare also created for objects which are semantically identical. Thisenables communication to take place between different applications via apure data exchange. A user can perform the projecting of thetransformations very conveniently by graphically connecting (linking)the symbols. As a result of the linking further rules are also generatedwhich can be processed further or reused. The graphical interface usedmakes the transformations and the rules used transparent to a user.

A first advantageous embodiment of the present invention for a systemconsists in the transformation being executable in the basic domain fora user. If the transformation is performed directly on the domain levelof the user, the user can abstract from the internal formats of theobjects or object trees. This increases the efficiency of a user sincehe or she resides in their familiar world (familiar nomenclature,familiar objects, etc.) during the development of solutions. A usertherefore does not have to transform the objects to be transformed atthe level of their internal format and subsequently translate them backagain into the domain environment.

A further advantageous embodiment of the present invention for a systemis that the rules are represented as objects of the software system. Asa result the objects appear to a user as part of the software system. Auser can also handle the rules like objects, e.g. graphically link them.

A further advantageous embodiment of the present invention for a systemis that the nodes and/or operators and/or rules are positioned andconnected by means of input aids via drag&drop. As a results users aresupported in their working practices and their efficiency is increased.

A further advantageous embodiment of the present invention for a systemis that further transformation operators and/or rules can be defined bya user. This increases the flexibility for a user and a user can definerules which are appropriate to the underlying structures and problems.

A further advantageous embodiment of the present invention for a systemis that the software system is implemented by means of at least oneframework program. This provides the advantages of a framework. Aframework defines the architecture of a family of software systems,provides the basic building blocks for creating these systems andspecifies the way they interact. Frameworks save on development time anddevelopment costs.

A further advantageous embodiment of the present invention for a systemis that source and target object tree are predefined by the objectmodels of coupled adapters. Adapters are one abstraction stage higherthan wrappers. They offer a uniform view of coupled applications. Anadapter provides functionality required to start, operate the componentto be coupled, etc. An adapter corresponds, in the language of thedesign patterns, to a “facade”. A wrapper, on the other hand, maps theAPI (Application Programmable Interface) of an other-vendor component(e.g. an MES application of a third-party provider) into the objectmodel of a software system. Thus, for example, a method of the API ofthe third-party component is converted into a method of the softwaresystem or an integer data type of the API of the third-party componentis converted into an integer data type of the software system, etc. Bymeans of adapters the objects of the applications to be integrated aremapped into the meta-object model of the software system and representedas source or target object tree in the meta-object model. If theadapters now specify the structure of these trees, a subsequenttransformation of source to target object tree can be performed veryeasily and possibly even be automated.

According to the invention the posed object for a method for projectingtransformations of object trees is achieved by the features recited inclaim 8. In this case the transformation of the objects or object treestakes place in the domain environment of the user, i.e. the user canabstract from the underlying format of the objects. A further advantageis that as a result of the transformation object structures are changedinto a form which is intelligible in each case to recipients (e.g. otherapplications) of these object structures. That is to say, the situationoften occurs that in a common meta-object model semantically identicalobjects (e.g. a production order) are represented differently. As aresult of the transformations uniform representations are also createdfor objects which are semantically identical. This enables communicationto take place between different applications via a pure data exchange. Auser can initiate the projecting of the transformations veryconveniently by graphically connecting (linking) the symbols. As aresult of the linking further rules are also generated which can beprocessed further or reused. The graphical interface used makes thetransformations and the rules used transparent to a user.

A first advantageous embodiment of the present invention for a methodconsists in the transformation being executable in the basic domain fora user. If the transformation is performed directly on the domain levelof the user, the user can abstract from the internal formats of theobjects or object trees. This increases the efficiency of a user sincehe or she resides in their familiar world (familiar nomenclature,familiar objects, etc.) during the development of solutions. A usertherefore does not have to transform the objects to be transformed atthe level of their internal format and subsequently translate them backagain into the domain environment.

A further advantageous embodiment of the present invention for a methodis that the rules are represented as objects of the software system. Asa result the objects appear to a user as part of the software system. Auser can also handle the rules like objects, e.g. graphically link them.

A further advantageous embodiment of the present invention for a methodis that the nodes and/or operators and/or rules are positioned andconnected by means of input aids via drag&drop. As a result users aresupported in their working practices and their efficiency is increased.

A further advantageous embodiment of the present invention for a methodis that further transformation operators and/or rules are defined by auser. This increases the flexibility for a user and a user can definerules which are appropriate to the underlying structures and problems.

A further advantageous embodiment of the present invention for a methodis that the software system is implemented by means of at least oneframework program. This provides the advantages of a framework. Aframework defines the architecture of a family of software systems,provides the basic building blocks for creating these systems andspecifies the way they interact. Frameworks save on development time anddevelopment costs.

A further advantageous embodiment of the present invention for a methodis that source and target object tree are predefined by the objectmodels of coupled adapters. Adapters are one abstraction stage higherthan wrappers. They offer a uniform view of coupled applications. Anadapter provides functionality required to start, operate the componentto be coupled, etc. An adapter corresponds, in the language of thedesign patterns, to a “facade”. A wrapper, on the other hand, maps theAPI (Application Programmable Interface) of an other-vendor component(e.g. an MES application of a third-party provider) into the objectmodel of a software system. Thus, for example, a method of the API ofthe third-party component is converted into a method of the softwaresystem or an integer data type of the API of the third-party componentis converted into an integer data type of the software system, etc. Bymeans of adapters the objects of the applications to be integrated aremapped into the meta-object model of the software system and representedas source or target object tree in the meta-object model. If theadapters now specify the structure of these trees, a subsequenttransformation of source to target object tree can be performed veryeasily and possibly even be automated.

A further advantageous embodiment of the present invention is that themethod according to the invention is implemented by means of a computerprogram. As a result, possible modifications or adaptations can beeasily carried out.

A further advantageous embodiment of the present invention is that thecomputer program for the method according to the invention is stored ona data medium. As a result the method is easy to handle in terms oflogistics and distribution.

A further advantageous embodiment of the present invention is that thecomputer program for the method according to the invention is installedon a data processing device. As a result performance is increased.

BRIEF DESCRIPTION OF THE DRAWINGS

Further advantages and details of the invention will emerge withreference to the now following description of advantageous exemplaryembodiments and in connection with the figures. In so far as elementswith identical functionalities are described in different figures, theseare identified by the same reference characters. The figures show:

FIG. 1 in an overview representation, the “enterprise pyramid”comprising three control levels,

FIG. 2 an exemplary overview diagram including software and hardwareunits for MES solutions,

FIG. 3 the central position of the framework program coupling thesoftware applications,

FIG. 4 an example of the transformation of objects,

FIG. 5 an example of the transformation of objects with the aid ofmathematical objects,

FIG. 6 an example of the projecting of a transformation,

FIG. 7 a schematic of the structure of an adapter, and

FIG. 8 a “component” as a meta-object model in UML notation.

DETAILED DESCRIPTION OF INVENTION

The illustration according to FIG. 1 shows in an overview representationthe three control levels, as they are typically to be found in aproducing or manufacturing organization. The pyramid shape is intendedto express that a concentration of the information takes place from thebottom toward the top. The highest level is the ERP (Enterprise ResourcePlanning) level. It is at this corporate executive management level thatthe operational and sales and marketing tasks are typically carried outin an organization (e.g. financial management, sales, human resources,reporting). Logistical tasks spanning production systems (e.g. order andmaterials management) are also performed at this level, however. The SAPR/3 system is an ERP system which is very commonly used at the corporateexecutive management level.

The lowest level of the pyramid is The automation level (Controls).Stored program controls (SPCs) are typically deployed at this level incombination with visualization and process control systems (PCSs). Thedrives, actuators and sensors of the production and/or manufacturingequipment are directly connected to the systems of this level.

The connecting element between the ERP level and the automation level isformed by the MES level. The applications of the MES level thus ensurevertical integration between the ERP level and the automation level. Onthe one hand, the MES applications must supplement the rough planningdata of the ERP systems with production system-specific fine planningdata and forward this information to the systems of the automationlevel. On the other hand, the MES applications are responsible forrecording and editing production-relevant data of the automation leveland forwarding it to the ERP level (corporate executive managementlevel).

Typical MES applications include quality management (QM), maintenancemanagement (MM), performance analysis (PA), process management, labormanagement, and asset management. Three dots are used at each level inFIG. 1 to indicate that a level may also contain further elements(applications, systems, etc.).

MES systems and ERP systems usually contain what is known as a runtimesystem for scheduling the time of execution of the components involved(subcomponents, modules, tasks, processes of the operating system, etc.), as well as what is known as an engineering system for producing andediting programs which are provided for execution in the runtime system.

The illustration according to FIG. 2 shows an exemplary overview diagramincluding software and hardware units for MES solutions. The individualMES applications A1 to A3 are connected via adapters AD1 to AD3 to aframework program IF. A user workstation PIW1 is linked to the frameworkprogram IF via a bidirectional information path I1 and can thereforeadminister and monitor the attached or integrated MES applications. Theuser workstation PIW1 typically consists of a display device (monitor,display, etc.), a data processing system (e.g. PC) with processor andstorage devices, and input units (keyboard, mouse, etc.). The MESapplications A1 to A3 and the framework program IF can run on dedicateddata processing units or processors, but it is also possible that theyrun on the data processing unit of the PIW1.

The respective MES applications A1 to A3 are connected to the frameworkprogram IF via adapters AD1 to AD3. The adapters are therefore thelinkage components between the framework program IF and theapplications. Thus, inherently heterogeneous applications can also beinterconnected via the adapters, and as a result of the integration withthe framework program IF it is possible for the applications tocommunicate between themselves and to engage in data exchange. Theadapters are software modules which establish connections to differentapplications. In typical integration scenarios these are integrationswith systems from the MES, ERP, SCADA or Controls environments. Anadapter provides the functionality required to start and operate acomponent to be coupled, etc.

An adapter permits access to data and functions of the application to beattached, makes certain runtime data available and permits engineeringinformation to be loaded from the application to be coupled. Adapterscan differ in terms of their structure and scope. Thus, for example,adapters can be permanently programmed or they can be configured ormodeled. Adapters can also differ in terms of the possibilities foraccess to the application to be coupled. Thus, for example, adapters maypermit only a data-related access, though it is also possible foradapters to allow access to higher-value business processes. At startuptime the adapters are loaded with the stored models and statusinformation. At runtime a check is then made to determine whether andhow the different integrated applications fit together. Via avisualization and/or monitoring component it is possible to interrogatethe status of an adapter and present it (also graphically) on the userworkstation PIW1. By means of adapters both the system and the userreceive a standardized and consistent view onto applications (dependingon which abstraction level is present in the adapters).

A further means of integrating software components is to use wrappers. Awrapper maps the API (Application Programmable Interface) of athird-party component (e.g. an MES application) into the object model ofthe framework program. Thus, for example, a method of the API of thethird-party component is transformed into a method of the frameworkprogram or a integer data type of the API of the third-party componentis transformed into an integer data type of the framework program.

In addition to MES applications, applications from the corporateexecutive management level (Enterprise Resource Planning level) and fromthe automation level (Controls level) can also be integrated via theframework program IF and monitored and/or administered via theworkstation PIW1 (the acronym PIW stands for Personalized IndustrialWorkplace). The framework program IF thus forms an integration platformfor the whole of the industrial sector. Different applications from thecorporate executive management level, the MES level and the automationlevel can be integrated easily and economically by the framework programIF with the aid of adapters and/or wrappers. The framework program IF istherefore to be regarded as a middleware platform and as a manufacturingapplication integration tool. Via the workstation PIW1, a user (e.g. thesystem operator) can view the respective statuses of the applications tobe monitored and can also access data and methods of the applications.And furthermore by means of this access the user can also putapplications in connection with one another.

The framework program IF therefore enables, on the one hand, a verticalintegration of applications from different levels of an organization tobe achieved and, on the other hand, permits a horizontal integration ofapplications of the MES level.

The workstation PIW1 represents “one window to the world” for a user atthe front end of MES applications or other applications from theorganization. In other words, the workstation permits integrated accessto different, even heterogeneous applications in the organization via acommon standardized interface. The user of the workstation PIW1 cantherefore monitor and administer all the integrated MES or otherapplications from this one workstation. This workstation can be linkedto the applications via the Internet, the intranet, LAN (Local AreaNetwork) or other possible connection means. It is also possible toconfigure this workstation as a mobile station, e.g. as a mobileterminal device (PDA, cellphone). This mobility would result in evenfurther advantages for a user.

The illustration according to FIG. 3 shows the central position of theframework program linking together the software applications. Choosing aclient/server architecture is appropriate for implementing the system ormethod according to the invention. In this case the framework program(IF; FIG. 2) can be implemented on a single server or on multiplearbitrary servers which can be distributed over an IT landscape. FIG. 3shows that the framework program (IF; FIG. 2) resides on a server IFS(Industrial Framework Server). Attached to this central server IFS bymeans of the bidirectional information paths I2-I8 are the clients. Theclients include, on the one hand, the applications from the ERP, the MESand the automation level. These applications are shown at the lower edgeof the diagram in FIG. 3. These applications are connected to theframework program (IF; FIG. 2) and hence to the server IFS via theadapters AD4-AD6. The adapters AD4-AD6 are connected to the applicationsvia API interfaces API1-API3 (API stands for Application ProgrammableInterface).

An Application Programmable Interface represents an interface having aset of commands. APIs are also used during the conversion of parameterlists from one format into another format and during the interpretationof the arguments in one or both directions. The APIs are, as it were,the glue between the applications and the adapters. The link between theadapters AD4 - AD6 and the framework program (IF; FIG. 2) (representedin FIG. 3 by the bidirectional information paths I3-I5) is establishedvia suitable data formats (e.g. XML), suitable protocols (XOP, OPC,etc.) and suitable transport mechanisms (e.g. DCOM or MSMQ). HTTP (HyperText Transfer Protocol) can also be used here. The SOAP protocol (SimpleObject Access Protocol) which is based on XML (extensible MarkupLanguage) can also be used for the integration of the adapters AD4 - AD6with the framework program (IF; FIG. 2) or the associated server IFS.Clients or applications which support ActiveX documents or calls can beintegrated particularly advantageously into the framework program (IF;FIG. 2) or the server IFS. The connection of the applications to theframework program can be implemented not only with adapters but also bymeans of wrappers or other integration mechanisms.

The repository IFR (Industrial Framework Repository) can be connected tothe server IFS as a further client. In FIG. 3, the connection isrepresented by the bidirectional information path I2. The repository IFRis used to hold data in a secure and persistent state. This data can beaccessed via method calls. The repository serves to store objects,methods and runtime data, among other information.

Further clients of the server IFS are shown in the top half of thediagram. The personalized industrial workplace PIW2 and a possiblypresent engineering environment EU are clients of the server IFS. Thepersonalized industrial workplace PIW2 is connected to the frameworkprogram (IF; FIG. 2) or to the server by means of the bidirectionalinformation path I6, while the engineering environment EU is similarlyconnected by means of the bidirectional information path I7. The threedots are intended to indicate that further clients can be attached tothe server IFS. Moreover, FIG. 3 shows that a further client C,connected by means of the information path I8, is also attached to theserver IFS.

The clients IFR, PIW2, EU, C are connected accordingly via APIs or viacommon data formats (e.g. XML), common protocols (XOP, OPC, etc.) andcommon transport mechanisms (e.g. DCOM, HTTP or MSMQ).

The adapters AD4-AD6 used enable access to data and also to methods ofthe individual applications which connect them to the framework program(IF; FIG. 2). These adapters are very flexible and not tied toindividual special protocols or special transport mechanisms. If theadapters are deployed in a runtime environment, then they are configuredin such a way that it is ensured that certain required data from anapplication is present at the right time in the server environment. Thiscan be achieved, as already indicated, by way of different protocols andtransport mechanisms. A plurality of adapters, which can also possesssmall server characteristics (such as, for example, the execution ofworkflows, the provision of different communication facilities, . . . ),can be located in a runtime environment. These adapters can run on therespective application computer. However, they do not necessarily haveto run on just one machine, but can also be distributed.

Software applications, in particular MES (Manufacturing ExecutionSystem) applications, are often present in a heterogeneous form, e.g.they can possess different data formats or object models or they areimplemented in different programming languages. The system or methodaccording to the invention enables heterogeneous applications of thistype to be integrated with the aid of a framework program. Thecommunication between these applications takes place on the basis ofmeans of communication such as, for example, HTTP, DCOM, MSMQ, etc.However, the communication, i.e. the data exchange between theapplications, is independent of these means of communication, i.e. theapplications can abstract from the application means.

The illustration according to FIG. 4 depicts an example of thetransformation of objects or object trees. Semantically identicalobjects may be represented entirely differently in a common meta-objectmodel. In order to enable communication via pure data exchange it isnecessary for the object structures to be exchanged to be converted intoa form which is intelligible to the respective recipient. The diagramaccording to FIG. 4 shows in schematic form the interface of aprojecting environment for the transformation of objects or object treeshaving a display device AZ1. The object trees shown in the screen areasBB1 and BB2 constitute objects (e.g. a production order) which aresemantically identical, but which are represented differently. Thesource tree QB consists of a root 1 and, located thereunder, an element2 which in turn possesses S1 and S2 as sub-elements. The target tree ZBpossesses 1′ as its root and 2′ and 2″ as elements attached thereunder.Element 2′ is connected to element S1, and element 2″ to element S2. Thetree representations QB and ZB belong to applications (e.g. MESapplications) which have been mapped via adapters into the meta model ofthe underlying software system (e.g. framework). Since the two treestructures, although representing semantically identical objects, arerepresented in a different form in the meta-object model, communicationbetween the applications to which they belong is not yet possibleeffectively in this form. Effective communication is made possible bythe mapping of one object tree onto the other. In the diagram accordingto FIG. 4, the source tree QB is transformed into the target tree ZB.The way in which this transformation takes place is shown in the screenarea BB3. In this scheme the elements S1 and S2 represent objects (e.g.variables) which have the same meaning in the two trees QB and ZB. Inthe screen area BB3 it is shown how a transformation can take placewhich expresses that the objects S1 and S2 of the source tree QB and ofthe target tree ZB are semantically related. As a further screen area,the display device AZ1 can include a menu bar ML1 on which there arerepresented (e.g. by means of buttons) functions which a user can usefor the transformation.

A monitor or a display is typically used as the display device. A usercan control and activate the elements of the display device via inputaids, e.g. a mouse or keyboard. The display device AZ1 can also includefurther screen areas. Thus, it is also conceivable, for example, thatthe screen area BB3 is further subdivided, or alternatively further menubars ML1 may also be present. Once defined by the user, transformationscan be stored and reused for subsequent applications. A user can alsodefine rules in order to perform these transformations. These rules canalso be stored by a user and reused for subsequent transformations. Itis also conceivable that a rule becomes part of the meta-object model ofthe underlying software system and is then available to a user as anobject. The rule objects referred to are generated automatically duringthe definition of a transformation. Mathematical functions (addition,subtraction, sine, cosine, etc.), but also timers or other adapters(e.g. Excel), can be used for defining transformations. Thetransformations and rules can be produced very easily using drag&dropmechanisms. As a result of the above described transformation, twosemantic representations (e.g. object trees), which were introduced intothe meta-object model by means of the adaptation, are converted into oneanother. This makes it very easy for the adapted applications (e.g.different MES applications) to communicate with one another. With thetransformation described, the objects or object trees are mappeddirectly onto one another and not the representations of these objectsin any format structures. The transformation can therefore take place inthe user's domain environment, and a user can abstract from the internalrepresentation of the objects, i.e. from the internal formats. Theprojecting or engineering environment described here can be implemented,for example, as a client in a framework or in the software system.However, it is also possible for this environment to be implemented on astandalone PC.

The illustration according to FIG. 5 shows an example of thetransformation of objects or object trees with the aid of mathematicalobjects. The screen areas BB1′ and BB2′ contain object trees OB1 andOB2, which are to be converted into one another. OB1 contains thecomponent K1 as an element in its structure, while OB2 contains thecomponent K2 as an element in its structure. The components K1 or K2 aremoved onto the work area BB3′ by means of a drag&drop mechanism, and onthe work area BB3′ the component K1′ corresponds to the component K1 ofthe object tree OB1 and the component K2′ corresponds to the componentK2 of the object tree OB2. It is intended to produce a transformationbetween these components K1′ and K2′. K1′ contains the variables V1 andV2, and K2′ contains the variables S and D. Operators, e.g. Addition,Subtraction, Division, Sine, are represented in the menu bar ML2, andthese can be used for defining a transformation. Further mathematicaloperators can also be provided in order to define a transformation, e.g.Multiplication, Tangent, Arc Tangent, Cosine, Exponential Function,Logarithm, Root Function, Signum, Absolute Function, etc. Furthermore,timers can also be used for the definition of transformations. Timersprovide, for example, the current time or also definable timing pulseswhich can be manipulated e.g. with the aid of the mathematicaloperations mentioned. Thus, it is possible, for example, to add valuesthat come from a timer to other values and only then pass them on.

A user can, however, also implement self-defined operators or operationsby means of scripts or implementation of COM objects. In the screen areaBB3′ it is shown that the two variables V1 and V2 of the component K1and K1′ are added together. The result of this addition (represented bythe variable R1) is linked to the variable S of the component K2′ andK2. During the generation of a transformation of this type there isproduced a rule object which can also be reused for subsequenttransformations. These rule objects can be stored for example in thecommunication structure of an adapter (see FIG. 7) and used. As a resultof the drag&drop-like manner of linking object trees to one another orobjects of object trees by the user moving them onto the work area BB3′,the connections for the transformation are generated automatically. Inother words, this connection is created in the background for theobjects to be linked.

Owing to the possibilities of graphical projecting using the drag&dropmechanism, it is no longer necessary for the user to program individualconnections. Instead, he or she can project them graphically. Thisgreatly increases a user's efficiency and productivity. Following atransformation, two object trees which are to be linked to each otherare present in a common representation. As a result it is very easy toset up a communication which is based on a pure data exchange betweenthese objects, i.e. between the associated applications. The performanceof a communication connection of this kind is very high.

The illustration according to FIG. 6 depicts an example of theprojecting of a transformation. FIG 6 shows a display device AZ3 (e.g.display, monitor) comprising the screen areas BB1″, BB3″, BB2′ and thescreen area ML3. The object tree OB3 with the component K3 is shown inthe screen area BB1″. The component K3 contains the variables v3 and v4.The arrows P1 and P2 schematically indicate that the component K3 andthe associated variable v3 are dragged onto the screen area BB3″ bymeans of drag&drop. Thus, the screen area BB3″ represents a work area(workspace, interface, desktop) in the projecting environment. Thescreen area BB2″ contains the object tree OB4. This object tree OB4contains a node MO with mathematical objects. These mathematical objectscan likewise be moved onto the work area BB3″. This is representedschematically by means of the arrow P3. The mathematical object“Subtraction” (Sub) is selected by means of the arrow P3 and moved ontothe work area. This mathematical object “Subtraction” contains the inputvariables x3 and y3 as well as the output variable r3. The variable r3represents the result of the subtraction. In the diagram according toFIG. 6 it is shown that the node containing the mathematical objects MOcan also include the addition, the multiplication, the division, and thesine, as well as the subtraction. However, it is also possible that thisnode contains further mathematical objects such as arc, arc tangent ormathematical functions defined personally by the user. The user can linkthe objects to each other on the work area BB3″ and in the processestablish rules for the transformation of the object trees. It is alsoconceivable that the mathematical objects for creating the rules arestored in the menu bar ML3. These mathematical objects can then beselected from this menu bar ML3 also via drag&drop or by means of mouseclick for the work area BB3′. The menu bar ML3 can also include furtherfunctions which can also be defined by the user. The screen areas, asrepresented in the display device AZ3, can also be disposed in someother arbitrary arrangement. It is also conceivable that further screenareas are displayed or that fewer screen areas are displayed. The inputsfor the projecting environment can also be effected using other inputaids, e.g. via a keyboard.

The illustration according to FIG. 7 shows the structure of an adapterin schematic form. Each adapter is a special component with the specialcharacteristic that the component of an adapter runs in a separateprocess in each case. Each adapter already comes with a specific defaultstructure, which is again represented as a tree structure of objects ofthe framework program, i.e. components and variables, and which providescertain points at which the adapter can convey specific informationexternally. Examples of this are status information relating to thestatus of the adapter (is the adapter linked to its application, is theapplication running, version information, etc.). An adapter can alsoissue information on the external system, i.e. the external application,externally. By means of the “object space” an adapter can outputstructures which can be accessed by other adapters or otherapplications. An adapter can also output information relating to acommunications infrastructure. A communications infrastructure isunderstood to mean objects for sending messages, receiving messages, andtransforming messages. But it also includes mechanisms for performingrouting and mechanisms for logging the data exchange of the adapter. Thecommunications infrastructure of an adapter further comprises so-calledinports and outports, which physically receive or send the messages. Anadapter is present as a separate process of the operating system, i.e.if an adapter crashes, then this has no impact on other adapters. Anadapter is therefore a distinct, self-contained application which isexecutable on its own.

Adapters and wrappers are mechanisms to enable the integration ofsoftware components into a software system. A wrapper maps the API(Application Programmable Interface) of a third-party component or anapplication to be integrated into the object model of the softwaresystem, in this case the framework program (IF; FIG. 2). Thus, forexample, a method of the API of the application to be integrated isconverted into a method of the framework program or an integer data typeof the API of the application to be integrated is converted into aninteger data type of the framework program, etc. A wrapper thus convertsthe API of the application to be integrated into the language, thenomenclature and the object environment of the framework program.

An adapter, on the other hand, is an abstraction stage higher than awrapper. Adapters represent a standardized view onto applications whichare to be integrated, and the framework program into which theapplication to be integrated is mounted can abstract from thisapplication. An adapter provides functionality required to start,operate and handle the system to be integrated, i.e. the application tobe integrated. With the aid of adapters, a user can use, for example, aSAP application without being a SAP expert. By means of the IDOCadapters, SAP applications are mapped into the object model of theframework program and are then used as objects of the framework program(Component IDOC).

The system and method according to the invention enables twoapplications (e.g. MES applications) to be brought into contact witheach other on a peer-to-peer basis without the need to program a link ofthis type as a peer-to-peer connection in each case. These links areprojected according to the invention by the establishment of aconnection.

The rules used during the transformation can be part of an adapter orthe rules can be stored as information on an adapter and imported intothe system.

There are, for example, adapters for spreadsheets (e.g. Excel) or other“commercials off the shelf” programs.

The illustration according to FIG. 8 shows the object structure of a“component” as a meta-object model of the framework program (IF; FIG. 2)in UML (Unified Modeling Language). With the system and method accordingto the invention, the software applications to be integrated and theunderlying means of communication (e.g. HTTP, MSMQ, etc.) are mappedonto an object model of the framework program (IF; FIG. 2). As a result,inherently heterogeneous applications possess a common object model.Consequently, all methods, data structures, objects, etc. of thethird-party applications to be integrated are represented in a commonobject model. This object model is very generic and represents ameta-object model. The core of this object model consists of an objecttype named “component”. A component can, in turn, aggregate othercomponents and/or contain special types of components, known asvariables, to which specific values are assigned during operation. Eachof the components and variables can also possess additional attributes.

This object model forms the basis for the adaptation of MES applicationsor other applications. This means that the structures of theapplications are translated or mapped into structures of this objectmodel. All the applications to be integrated are represented within theframework program (IF, FIG. 2) in the representation of this objectmodel. The underlying means of communication are also mapped onto thisgeneric object model. All applications and all underlying means ofcommunication are now represented in the framework program (IF; FIG. 2)in a consistent and homogeneous object model. As a result, communicationrelationships can be set up very simply and easily between theapplications.

In the diagram according to FIG. 8, the generic component “Component”,which represents the core of the object model, is shown in UML notation.

The rectangular boxes represent parts of the object model. Anaggregation (is-part-of relationship) is represented by a diamondrelationship, while inheritance (is-a relationship) is represented by atriangle relationship. In the diagram according to FIG. 8, therefore, itis shown that a component can consist of a plurality of components; acomponent can also be part of another component. By means of the diamondrelationship a component is linked to attributes and variables. In otherwords, a component can contain attributes and variables. Attributes aredescriptive data. All objects of a class possess the same attributes,though in general they have different attribute values. An attributevalue is a value assigned to an attribute from its value range. Avariable can assume values of specific data types (e.g. integer, real,etc.). As indicated by the diamond relationship, a component can containa plurality of variables. However, a component can also be a superclassof a variable, as represented by the triangle relationship. In otherwords, a variable can be a derived component. The diamond and trianglerelationships can also contain cardinalities.

By means of mapping mechanisms such as adapters or wrappers, forexample, the software applications to be integrated and the underlyingmeans of communication are mapped onto this generic object structure,i.e. “Component” structure, of the framework program (IF; FIG. 2).

System and method for projecting the transformation of object trees, inparticular in MES systems, wherein the source and target object treesare represented in a common meta-object model of a software system, inparticular of a framework. The source object tree is transformed intothe target object tree by means of rules. The transformation takes placedirectly on the objects of the meta-object model (component). Thisenables communication to be established between coupled applications viaa pure data exchange.

The above described system and method according to the invention can beimplemented as a computer program in languages known for this purpose. Acomputer program implemented in this way can be transferred in alikewise known manner via electronic data paths, but also stored andtransported on data media.

1-17. (canceled)
 18. A system for projecting transformations of objecttrees, wherein the source and target object trees are represented in acommon meta-object model of a software system and wherein the softwaresystem is stored on at least one computer unit, the system forprojecting comprising: a first screen area of a display device forrepresenting a source object tree; a second screen area of the displaydevice for representing a target object tree; a third screen area of thedisplay device for representing a work area for positioning the nodes ofthe object trees; and a fourth screen area of the display device forrepresenting operators and/or rules, wherein the operators and/or rulescan be positioned on the work area, and wherein projecting atransformation on the work area is accomplished by connecting symbolspositioned on the work area.
 19. A system according to claim 18, whereinthe transformation is performed in the user domain.
 20. A systemaccording to claim 18, wherein the rules are represented as objects ofthe software system.
 21. A system according to claim 18, wherein thenodes and/or the operators and/or the rules are positioned andinterconnected by input aids using drag&drop.
 22. A system according toclaim 18, wherein further transformation operators and/or rules aredefined by a user.
 23. A system according to claim 18, wherein thesoftware system is implemented by at least one framework program.
 24. Asystem according to claim 18, wherein the source object tree and thetarget object tree are predefined by the object models of coupledadapters.
 25. A method for projecting transformations of object trees,comprising: representing the source object tree and target object treein a common meta-object model of a software system; storing the softwaresystem on at least one computer unit; displaying a source object tree ona first screen area of a display device; displaying a target object treeon a second screen area of the display device; providing a work area ona third screen area of the display device; positioning nodes of theobject trees on the work area; and projecting a transformation on thework area by connection symbols positioned on the work area.
 26. Themethod according to claim 25, further comprising: displaying operatorsand/or rules on a fourth screen area of the display device; andpositioning the operators and/or the rules on the work area.
 27. Themethod according to claim 25, wherein the transformation is performed inthe underlying user domain.
 28. The method according to claim 26,wherein the rules are represented as objects of the software system. 29.The method according to claim 25, wherein the nodes are positioned andinterconnected by input aids using drag&drop.
 30. The method accordingto claim 26, wherein the operators and/or the rules are positioned andinterconnected by input aids using drag&drop.
 31. The method accordingto claim 25, wherein further transformation operators and/or rules aredefined by a user.
 32. The method according to claim 25, wherein thesoftware system is implemented by at least one framework program. 33.The method according to claim 25, wherein the source and target objecttree are predefined by the object models of coupled adapters.
 34. Themethod according to claim 25, wherein the method is implemented by acomputer program.
 35. The method according to claim 25, wherein themethod is implemented by a computer program which is stored on a datamedium.
 36. A data processing device comprising a computer program forperforming a method for projecting transformations of object trees, themethod comprising: representing the source object tree and target objecttree in a common meta-object model of a software system; storing thesoftware system on at least one computer unit; displaying a sourceobject tree on a first screen area of a display device; displaying atarget object tree on a second screen area of the display device;providing a work area on a third screen area of the display device;positioning nodes of the object trees on the work area; and projecting atransformation on the work area by connection symbols positioned on thework area.